package com.sky.mapper;

import com.sky.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.Map;

/**
 * mapper对应的定义的都是接口,都不是普通的java类
 * @author DragonflyYue
 */
@Mapper
public interface UserMapper {

    /**
     * 根据openid来查询用户
     * 这个openid是用来唯一标识微信用户的
     * @param openid
     * @return
     */
    @Select("select * from user where openid = #{openid}")
    User getByOpenid(String openid);

    /**
     * 插入数据
     * 把新用户数据插入到数据库对应的表中
     * 主键id是自增长的,而前面构建UserLoginVO对象的时候,是要用到这个id的,所以要单独把它返回一下
     * @param user
     */
    void insert(User user);

    /**
     * 
     * @param userId
     * @return
     */
    @Select("select * from user where id = #{userId}")
    User getById(Long userId);

    /**
     * 根据动态条件来统计用户数量
     * @param map
     * @return
     */
    Integer countByMap(Map map);
}
